package com.ruoyi.analyse.service;

import java.util.List;
import java.util.Map;
import com.ruoyi.analyse.domain.StudentProfile;

/**
 * 学生学情画像Service接口
 *
 * @author ruoyi
 */
public interface IStudentProfileService
{
    /**
     * 查询学生学情画像
     *
     * @param profileId 学生学情画像主键
     * @return 学生学情画像
     */
    public StudentProfile selectStudentProfileByProfileId(Long profileId);

    /**
     * 查询学生学情画像列表
     *
     * @param studentProfile 学生学情画像
     * @return 学生学情画像集合
     */
    public List<StudentProfile> selectStudentProfileList(StudentProfile studentProfile);

    /**
     * 新增学生学情画像
     *
     * @param studentProfile 学生学情画像
     * @return 结果
     */
    public int insertStudentProfile(StudentProfile studentProfile);

    /**
     * 修改学生学情画像
     *
     * @param studentProfile 学生学情画像
     * @return 结果
     */
    public int updateStudentProfile(StudentProfile studentProfile);

    /**
     * 批量删除学生学情画像
     *
     * @param profileIds 需要删除的学生学情画像主键集合
     * @return 结果
     */
    public int deleteStudentProfileByProfileIds(Long[] profileIds);

    /**
     * 删除学生学情画像信息
     *
     * @param profileId 学生学情画像主键
     * @return 结果
     */
    public int deleteStudentProfileByProfileId(Long profileId);

    /**
     * 更新学生提问记录
     *
     * @param userName 用户名
     * @param subject 学科
     * @param complexity 复杂度
     * @return 结果
     */
    public int updateStudentQuestionRecord(String userName, String subject, String complexity);

    /**
     * 获取学生学习画像
     *
     * @param userName 用户名
     * @return 学生画像数据
     */
    public Map<String, Object> getStudentLearningProfile(String userName);

    /**
     * 获取最活跃的学生列表
     *
     * @param limit 限制数量
     * @return 活跃学生列表
     */
    public List<Map<String, Object>> getTopActiveStudents(int limit, Long classId);
}
